Last updated on Monday, October 06, 2025
@article{Schoofs2022Ampyfier,
author = {Schoofs, Ebert and Abdi, Mehrdad and Demeyer, Serge},
journal = {Journal of Software: Evolution and Process},
month = jul,
pages = {e2490},
publisher = {Wiley},
title = {AmPyfier: Test amplification in Python},
year = {2022},
abstract = {Abstract Test amplification aims to automatically
improve a test suite. One technique generates new
test methods through transformations of the original
tests. These test amplification tools heavily rely on
analysis techniques that benefit a lot from type
declarations present in the source code of projects
written in statically typed languages. In dynamically
typed languages, such type declarations are not
available, and therefore, research regarding test
amplification for those languages is sparse. Recent
work has brought test amplification to the
dynamically typed language Pharo Smalltalk by
introducing the concept of dynamic type profiling.
The technique is dependent on Pharo-specific
frameworks and has not yet been generalized to other
languages. Another significant downside in test
amplification tools based on the mutation score of a
test suite is their high time cost. In this paper, we
present AmPyfier, a tool that brings test
amplification and type profiling to the dynamically
typed language Python. AmPyfier introduces
multi-metric selection in order to increase the time
efficiency of test amplification. We evaluated
AmPyfier on 11 open-source projects and found that
AmPyfier could strengthen 37 out of 54 test classes.
Multi-metric selection decreased the time cost
ranging from 17\% to 98\% as opposed to selection
based on the full mutation score.},
annote = {internationaljournal},
doi = {https://doi.org/10.1002/smr.2490},
}